(1) Field of the Invention
The present invention relates to the field of graphic user interfaces (GUIs) within computer systems. More specifically, the present invention relates to a GUI that is particularly useful in locating information in a large tabular display of information to a computer user. The present invention is useful in the field of pruning a search as well as managing, searching and sorting large amounts of tabular data.
(2) Prior Art
Current user interface (UI) controls used to display lists of related information do not provide adequate methods for organizing and navigating very large amounts of information. In the past, multi-column lists (MCL) and tree-view user interfaces (hierarchical trees) have been used to display lists of related information.
FIG. 1A illustrates an exemplary MCL 10 user interface which is organized as a table of rows including three columns including: a name column 10a; an address column 10b; and a phone column 10c. In this example, N rows are shown for each column. The ith row of each of the columns contains data related to a common record. This MCL user interface 10 is a flat list of items each having a consistent set of attributes. The MCL user interface 10, while providing a large volume of data, lacks any real hierarchical data organization and therefore searching records can be cumbersome.
FIG. 1B illustrates the prior art tree-view user interface 60. Within the tree-view 60, data is organized by a particular attribute of the data starting with a root 20 having branches that contain deeper levels of hierarchy. In this example, the hierarchical organization is based on a corporate position attribute with the president 20 as the root and the root having three branches of vice-presidents 22, 24 and 26. Each vice-president branch also contains sub-branches 28-44. The lowest level (leaf level) of hierarchy is the level including items 46-58. Although organizing the data according to a specific hierarchy, and thereby facilitating user searches, the tree-view is nevertheless limited in the amount of data that is presented to the user. For instance, in this exemplary tree-view 60 only names are presented for each data item. To obtain more information of the data item, the user needs to select a data item and move to a different view.
Particularly, it would be advantageous to provide users with the ability to factor/index the essential content from a long list of information. For example, an "in-box" may contain as many as 500 messages from 40 senders. It is desired to interactively index the 40 senders and then view the data from any one sender to access the messages from that sender. The ability to factor/index the essential context from a long list of information is typically performed by filtering in both the MCL and the view-tree user interfaces. In these cases, filtering is typically done in a separate dialog and therefore the act of filtering is done out-of-context and, unfortunately, this impedes the ability of a user to move fluidly within the user interface between altering the filter and reading its results. Another drawback of filtering within in the prior art is that the user must first know the results for which he/she is looking, a priori. Additionally, filtering by more than one criteria often involves the creation of complex Boolean expressions that can be cumbersome to use and error-prone in the prior art.
It would be advantageous to allow users the ability to quickly and easily restructure a hierarchy in order to organize and view the large amounts of content from different perspectives. The MCL user interface is not typically used to display hierarchical relationships between data. However, the tree-view user interfaces are used to display hierarchical information and typically support restructuring in one of two ways. First, by allowing the user to change the tree root and/or manipulating a position of a node or second, by hardwiring buttons to different hierarchical representations. Unfortunately, neither of these two mechanisms provide a fluid interface between reorganization and information display. Moreover, it would be advantageous to allow users to quickly and fluidly flatten a hierarchy, in whole or in part, e.g., to move a body of information between being represented as a flat list and being represented as a hierarchy. Although the MCL user interface is well suited to displaying flat lists, it is not typically used to display hierarchies. Further, tree-view user interfaces are not well suited to fluid restructuring and they are severely limited in their ability to display information as a flat list.
It would also be advantageous to allow users the ability to enforce a particular sort order, e.g., sort all the employees by city, then sort the employees of each city by last name. Tree-view user interfaces do not typically support sorting, and if they do, it is typically limited to only a straight alphabetical sort. With a basic process in place, most MCL user interfaces support a type of ordered sorting. However, it is not enforced and is only one method. For instance, if MCL 10 (FIG. 1A) is first sorted by city address and then sorted by last name, those names that are repeated are typically sorted by city. It would be advantageous yet to provide users with the ability to visually correlate items organized hierarchically with information about each item in particular. Tree-view user interfaces do not typically display more than the title of any given displayed element and the MCL user interfaces are not typically used to display hierarchical information.
In view of the rational presented above, current user interface controls used to display lists of related information do not provide adequate methods for organizing and navigating very large amounts of information.